<!DOCTYPE html>
<html>

<head>
    <meta charset="utf-8">
    <title>Vue 计算属性</title>

    <script src="https://cdn.jsdelivr.net/npm/vue@2.6.0"></script>
</head>

<body>
    <div id="example">
        <p>Original message: "{{ message }}"</p>
        <p>Computed reversed message: "{{ reversedMessage }}"</p>

        <p>模板内的表达式非常便利，但是设计它们的初衷是用于简单运算的。在模板中放入太多的逻辑会让模板过重且难以维护。</p>
        <p>Computed reversed message: "{{ message.split('').reverse().join('') }}"</p>
    </div>
</body>

<script type="text/javascript">
    var vm = new Vue({
        el: "#example",
        data: {
            message: "Hello Vue!"
        },
        computed: {
            // 计算属性的 getter
            reversedMessage: function () {
                // `this` 指向 vm 实例
                return this.message.split('').reverse().join('')
            }
        }
    });

    console.log(vm.reversedMessage) // => 'olleH'
    vm.message = 'Goodbye'
    console.log(vm.reversedMessage) // => 'eybdooG'
</script>

</html>